package com.syedu.day01;

/**
 * @Description 数据类型转换
 *
 * Java是一种强类型的编程语言,即Java中任何一个数据都必须明确数据类型
 *
 * @createTime 2022/3/3 16:06
 * @author Administrator
 */
public class DataChangeDemo {
    public static void main(String[] args) {
        //小 byte,short,int(char),long,float,double 大
        //自动类型转换(小转大)
        //自动把int类型转换成了double类型
        double d = 3;
        System.out.println(d);

        //自动把int类型转换成了long类型
        long l = 100;
        System.out.println(l);

        System.out.println("-----------------------------------------------------");

        /*
            数据范围大的类型往数据范围小的类型转换时,有可能出现放不下的情况,即丢失精度
            解决方式: 强制类型转换(大转小),可能存在各种风险
                0.成功转换
                1.数据精度丢失
                2.转换失败--报错
            结论: 强制类型转换使用时要慎重!!!
         */
        //把double类型的数据存入到float类型的变量中
        float f = (float) 3.14;
        System.out.println(f);

        //把double类型的数据存入到int类型中
        int i = (int) 3.14;
        System.out.println(i);

        //补充,double,float,long这三个数据类型有简化的强制类型转换方式,即数值后面加上D/d,F/f,L/l
        long ll = 100L; //等价于long ll = (long)100;

        System.out.println("-----------------------------------------------------");

        /**
         * 注意:
         * Java中,两个相同数据类型进行运算,结果仍然是该类型,即数据类型不变
         * Java中,不同数据类型进行运算,结果偏向数据类型较大的一方
         */
        long result1 = 1000000000 * 1000000;//-1530494976
        long result2 = 1L * 1000000000 * 1000000;//1000000000000000
        System.out.println(result1);
        System.out.println(result2);

       /* byte bb = 127;
        bb += 1;
        System.out.println(bb);//-128*/
    }
}
